# 使用官方Go镜像作为构建环境
FROM golang:1.23-alpine AS builder

# 设置工作目录
WORKDIR /app

# 复制go.mod和go.sum文件并下载依赖
COPY go.mod go.sum ./
RUN go mod download

# 复制源代码并构建
COPY . .
RUN go build -o main .

# 使用Alpine Linux作为运行环境
FROM alpine:3.18

# 设置工作目录
WORKDIR /app

# 复制构建好的二进制文件
COPY --from=builder /app/main .

# 复制配置文件
COPY settings.yaml .

# 复制数据库初始化脚本
COPY mysql_table.sql .

# 创建日志目录
RUN mkdir -p logs

# 暴露端口
EXPOSE 8004

# 运行应用
CMD ["./main"]